home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / cpp_libs / oath.lha / oath / test / hs1.cc < prev    next >
C/C++ Source or Header  |  1991-08-29  |  3KB  |  120 lines

  1. #include "oath/hashSet.h"
  2.  
  3. #include "oath/character.h"
  4.  
  5. #include "oath/localToken.h"
  6.  
  7. #include "timer.h"
  8.  
  9. #include <iostream.h>
  10.  
  11. /////////////////////////////////////////////////////////////////////////////
  12. // Test of characters and tokens
  13.  
  14. main ()
  15.    {// Test Tokens ////////////////////
  16.  
  17.     tokenA T1 = localTokenA::make();
  18.     tokenA T2 = localTokenA::make();
  19.     tokenA T3 = localTokenA::make();
  20.     tokenA T4 = localTokenA::make();
  21.  
  22.     characterA C1 = characterA::make('1');
  23.     characterA C2 = characterA::make('2');
  24.     characterA C3 = characterA::make('3');
  25.     characterA C4 = characterA::make('4');
  26.  
  27.     // Hash Sets /////////////////////
  28.  
  29.     hashSetA S1 = hashSetA::make();
  30.     hashSetA S2 = hashSetA::make(2);
  31.     hashSetA S3 = hashSetA::make(5);
  32.  
  33.     // Insertion /////////////////////
  34.  
  35.     S1 << T2 << C2 << T3 << C3 << T4 << C4;
  36.     S2 << T1 << C1 << T3 << C3 << T4 << C4;
  37.     S3 << T1 << C1 << T2 << C2 << T4 << C4;
  38.  
  39.     // Contains ////////////////////
  40.  
  41.     if(!S1.contains(T1) && !S1.contains(C1) &&
  42.         S1.contains(T2) &&  S1.contains(C2) &&
  43.         S1.contains(T3) &&  S1.contains(C3) &&
  44.         S1.contains(T4) &&  S1.contains(C4))
  45.         cout << "Success 1" << endl;
  46.     else
  47.         cout << "Fail 1" << endl;
  48.  
  49.     if( S2.contains(T1) &&  S2.contains(C1) &&
  50.        !S2.contains(T2) && !S2.contains(C2) &&
  51.         S2.contains(T3) &&  S2.contains(C3) &&
  52.         S2.contains(T4) &&  S2.contains(C4))
  53.         cout << "Success 2" << endl;
  54.     else
  55.         cout << "Fail 2" << endl;
  56.  
  57.     if( S3.contains(T1) &&  S3.contains(C1) &&
  58.         S3.contains(T2) &&  S3.contains(C2) &&
  59.        !S3.contains(T3) && !S3.contains(C3) &&
  60.         S3.contains(T4) &&  S3.contains(C4))
  61.         cout << "Success 3" << endl;
  62.     else
  63.         cout << "Fail 3" << endl;
  64.  
  65.     // Removal /////////////////////
  66.  
  67.     S1.remove(T2).remove(C2);
  68.     S2.remove(T3).remove(C3);
  69.     S3.remove(T4).remove(C4);
  70.  
  71.     // Contains ////////////////////
  72.  
  73.     if(!S1.contains(T1) && !S1.contains(C1) &&
  74.        !S1.contains(T2) && !S1.contains(C2) &&
  75.         S1.contains(T3) &&  S1.contains(C3) &&
  76.         S1.contains(T4) &&  S1.contains(C4))
  77.         cout << "Success 4" << endl;
  78.     else
  79.         cout << "Fail 4" << endl;
  80.  
  81.     if( S2.contains(T1) &&  S2.contains(C1) &&
  82.        !S2.contains(T2) && !S2.contains(C2) &&
  83.        !S2.contains(T3) && !S2.contains(C3) &&
  84.         S2.contains(T4) &&  S2.contains(C4))
  85.         cout << "Success 5" << endl;
  86.     else
  87.         cout << "Fail 5" << endl;
  88.  
  89.     if( S3.contains(T1) &&  S3.contains(C1) &&
  90.         S3.contains(T2) &&  S3.contains(C2) &&
  91.        !S3.contains(T3) && !S3.contains(C3) &&
  92.        !S3.contains(T4) && !S3.contains(C4))
  93.         cout << "Success 6" << endl;
  94.     else
  95.         cout << "Fail 6" << endl;
  96.  
  97.     // Speed Test ////////////////////
  98.  
  99.     timer Timer;
  100.     int Count = 0;
  101.  
  102.     Timer.start();
  103.     for(int I = 0; I < 100000; ++I)
  104.        {if(!S1.contains(T1) && !S1.contains(C1) &&
  105.            !S1.contains(T2) && !S1.contains(C2) &&
  106.             S1.contains(T3) &&  S1.contains(C3) &&
  107.             S1.contains(T4) &&  S1.contains(C4))
  108.             ++Count;
  109.        }
  110.     Timer.split();
  111.  
  112.     cout << "Count should be 100000: " << Count << endl;
  113.     cout << "Time to process 100000*8 contains calls:" << endl
  114.      << "\tReal Time = " << Timer.real() << " ms" << endl
  115.      << "\t CPU Time = " << Timer.cpu() << " ms" << endl;
  116.  
  117.    }
  118.  
  119.  
  120.